Computer graphics systems are special purpose computers that are used to create complex images on a display and to allow the computer user to modify and store the images.
Showing images on a display and moving the images on the display screen is a complex computer task, and there is a need in the industry for methods for more efficiently performing this complex task. In addition, as computer graphics applications become more popular, there is a need in the industry for computer graphics systems that are less expensive than current systems.
Many of the elements of a typical computer graphics system are shown in FIG. 4 of U.S. Pat. No. 4,745,407, entitled "Memory Organization Apparatus and Method", issued May 17, 1988 to Costello. A graphics accelerator is a special purpose processor unit which receives graphics commands from the CPU and executes them, typically by changing information stored in the frame buffer. A frame buffer is a special purpose type of memory in which the memory locations correspond to a location, or pixel, on a color monitor, or other type of display. Devices not shown in FIG. 4 of Costello sequentially read the memory locations in the frame buffer, and cause the pixel to be lit with the appropriate intensity or color, thereby causing the image to be shown on the display.
One method for providing a more efficient, less expensive computer graphics system is to provide more efficient means for transmitting and processing the graphics commands.
In a system such as the one taught by Costello, commands are transmitted from the CPU to the graphics accelerator over the VME bus. Unfortunately, general purpose buses such as the VME bus frequently carry a lot of traffic. This is particularly true in a system such as Costello, in which traffic between main memory and the frame buffer must travel over the same bus as traffic between the CPU and the graphics processor.
Thus it is important to maximize the efficiency of transmissions over the bus. One way of doing this is to force transmissions to be of a uniform size, typically a number of words or bytes, and to optimize the bus for transmissions of that size. However, for certain types of transmissions, it may be desirable for the information to be in sizes other than the uniform size. For example, the information being transferred may be a stream of graphics commands. If the graphics commands are all the same length, and the length is the same as the uniform transmission size, then the graphics commands may be transmitted to and from main memory efficiently. However, restricting the length of the graphics commands to the uniform transmission size may be inconvenient for the designer of the graphics command set. If the designer of the graphics command set wishes to create graphics commands of varying length, it may be very difficult for the system designer to select an optimal uniform transmission size.